<?php
// 本类由系统自动生成，仅供测试用途
namespace Admin\Controller;
use Think\Controller;
class CeshiController extends Controller {
    /**
     * 渠道生成二维码
     */
    public function index() {
        $channelMosel = M('wayuser');
        $$channel_db  = D('Channel');
        $data = $channelMosel->select();
        $datetime = date('Y-m-d');
        $path   = './Public/Uploads/qrcode/'.$datetime.'/';
        $weburl = C('WEBURL');
        if(!is_dir($path)){
            mkdir($path,0777,true);
        }
        set_time_limit(0);
        foreach ($data as $key => $value) {
            do{
                $filename = time().rand(1000,9999).".png";
            //判断是否存在
            }while(file_exists($path.$filename));

            if($value['waynum'] != 0){
                $qrres = $this->ceshiscerweima($weburl.'jdc/login_first_step.html?waynum='.$value['waynum'],$path.$filename,$value['name']);
                $newfile = $datetime.'/'.$filename;
                $create_qrcode =  $channelMosel->where(array('id'=>$value['id']))->save(['qrcode_url'=>$newfile]);

                // 修改渠道的二维码地址
                // $create_qrcode = $channel_db->EditChannelData(['id'=>$value['id']],['qrcode_url'=>$newfile]);
                // if(!$qrres){
                //     return false;
                // }
            }
            
        }
        echo "修改成功";die;
    }

    /**
     * 生成原始的二维码(生成图片文件)  
     */
    function ceshiscerweima($url='',$path=false,$name){
        // 二维码内容
        $value = $url;
        // 容错级别
        $errorCorrectionLevel = 'L';
        // 生成图片大小
        $matrixPointSize = 12; 
        if($path){
            $filename = $path;
        }else{
            $filename = false;
        }
        try{
            // 生成二维码图片
            \Org\Util\QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 1);
            // 准备好的logo图片
            $logo = C('PUBLIC_ROUTE').'/Public/mui/images/logo.png';
            // 准备好的背景图片
            $back = C('PUBLIC_ROUTE').'/Public/mui/images/back.jpg';
            if ($logo !== FALSE) {
              $back_res = imagecreatefromjpeg($back);
              $QR = imagecreatefrompng($filename);
              $logo = imagecreatefrompng($logo);
              // 背景图片宽度
              $back_width = imagesx($back_res);
              // 背景图片宽度
              $back_height = imagesy($back_res);
              // 二维码图片宽度
              $QR_width = imagesx($QR);
              // 二维码图片高度
              $QR_height = imagesy($QR);
              // logo图片宽度
              $logo_width = imagesx($logo);
              // logo图片高度
              $logo_height = imagesy($logo);
              // logo
              $logo_qr_width = $QR_width / 5;
              $scale = $logo_width/$logo_qr_width;
              $logo_qr_height = $logo_height/$scale;
              $from_width = ($QR_width - $logo_qr_width) / 2;
              // 背景图
              $qr_back_width = $back_width / 3;
              $scale_back = $QR_width/$qr_back_width;
              $qr_back_height = $QR_height/$scale_back;
              $from_back_width = ($back_width - $qr_back_width) / 2;
              // 重新组合图片并调整大小 
              imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);
            }
            // 保存二维码图片
            imagejpeg($QR,$filename,100);
            
            // 重新组合图片并调整大小
            imagecopyresampled($back_res, $QR, $from_back_width, $from_back_width+380, 0, 0, $qr_back_width, $qr_back_height, $QR_width, $QR_height);
            // 保存图片
            imagejpeg($back_res,$filename,100);
            if(file_exists($filename)){
                chmod($filename, 0777);
                $resimg = $this->makeImg($filename,$name);
                return $filename;
            }else{
                return false;
            }
        } catch(\Think\Exception $e){
            return false;
        }
        return true;
    }


    public function makeImg($filename,$name)
    {
        // header("Content-Type:text/html; charset=utf-8");
        // header('Content-type: image/png');// 告诉浏览器，这个文件，是一个png图片
        //字体大小
        $size = 22;
        //字体类型，本例为黑体
        $font = "./Public/Home/fonts/songti.ttf";
        //显示的文字
        $waterImageUrl = 12345678;
        //1、创建画布
        $img = imagecreatefromjpeg($filename);// 加载已有图像
        // 二维码图片宽度
        $QR_width = imagesx($img);
        // var_dump($QR_width);die;
        $textcolor=imagecolorallocate($img,92,18,7);
        $daax = $name."邀请您加入优优车";
        // $daax = "左定强邀请您加入优优车";
        //2、写字
        // $str = iconv("UTF-8","GBK",$daax);
        // var_dump($daax,'..');die;
        imagettftext($img,$size,0,$QR_width/3.5,1120,$textcolor,$font,$daax);
        //发送头信息
        // header('Content-Type: image/png');
        //输出图片
        // ImagePNG($img);
        //保存图片至指定路径
        ImagePNG($img, $filename);
        imagedestroy($img);
        return true;
    }
}